[INFO] cloning repository https://github.com/Zyphicx/ecstest
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zyphicx/ecstest" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZyphicx%2Fecstest", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZyphicx%2Fecstest'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cf3d0dc4be347e92edc1a5dcc010a3d92f090d44
[INFO] checking Zyphicx/ecstest against master#e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682 for beta-170-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZyphicx%2Fecstest" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Zyphicx/ecstest on toolchain e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Zyphicx/ecstest
[INFO] finished tweaking git repo https://github.com/Zyphicx/ecstest
[INFO] tweaked toml for git repo https://github.com/Zyphicx/ecstest written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/Zyphicx/ecstest already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bb20b58a0b03ec8fe12cf70dc59d49a3ed4b6e1a4e1088ef05d51c62963960f3
[INFO] running `Command { std: "docker" "start" "-a" "bb20b58a0b03ec8fe12cf70dc59d49a3ed4b6e1a4e1088ef05d51c62963960f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bb20b58a0b03ec8fe12cf70dc59d49a3ed4b6e1a4e1088ef05d51c62963960f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bb20b58a0b03ec8fe12cf70dc59d49a3ed4b6e1a4e1088ef05d51c62963960f3", kill_on_drop: false }`
[INFO] [stdout] bb20b58a0b03ec8fe12cf70dc59d49a3ed4b6e1a4e1088ef05d51c62963960f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 154afefe44aec8b9f8303bdd4beb2d6e4fcf1d2fc23be700d05b2cfdb6ceb640
[INFO] running `Command { std: "docker" "start" "-a" "154afefe44aec8b9f8303bdd4beb2d6e4fcf1d2fc23be700d05b2cfdb6ceb640", kill_on_drop: false }`
[INFO] [stderr]     Checking ecstest v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Tag::*`
[INFO] [stdout]    --> src/main.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | use Tag::*;
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tag::*`
[INFO] [stdout]    --> src/main.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | use Tag::*;
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:338:17
[INFO] [stdout]     |
[INFO] [stdout] 338 |     fn get_read(&World) -> Self::Read;
[INFO] [stdout]     |                 ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &World`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:339:18
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn get_write(&mut World) -> Self::Write;
[INFO] [stdout]     |                  ^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut World`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/main.rs:77:21
[INFO] [stdout]     |
[INFO] [stdout] 77  |         type Read = ( $( $( &'a $components ),+ )+ );
[INFO] [stdout]     |                     ^^^^^^^^               ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |     -----------------------------
[INFO] [stdout]     |     |
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `read` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 77  -         type Read = ( $( $( &'a $components ),+ )+ );
[INFO] [stdout] 77  +         type Read = &'a $components;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/main.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |         type Write = ( $( $( &'a mut $components ),+ )+ );
[INFO] [stdout]     |                      ^^^^^^^^                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |     ------------------------------
[INFO] [stdout]     |     |
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -         type Write = ( $( $( &'a mut $components ),+ )+ );
[INFO] [stdout] 127 +         type Write = &'a mut $components;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:234:37
[INFO] [stdout]     |
[INFO] [stdout] 234 |     components: HashMap<TypeId, Box<ComponentStorage>>,
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 234 |     components: HashMap<TypeId, Box<dyn ComponentStorage>>,
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:167:49
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl ComponentStorage for HashMap<EntityID, Box<Component>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl ComponentStorage for HashMap<EntityID, Box<dyn Component>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:181:35
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ComponentStorage for Vec<Box<Component>> {
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ComponentStorage for Vec<Box<dyn Component>> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:162:47
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn put(&mut self, id: EntityID, comp: Box<Component>);
[INFO] [stdout]     |                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn put(&mut self, id: EntityID, comp: Box<dyn Component>);
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:163:48
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn get(&self, id: EntityID) -> Option<&Box<Component>>;
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn get(&self, id: EntityID) -> Option<&Box<dyn Component>>;
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:164:60
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<Component>>;
[INFO] [stdout]     |                                                            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<dyn Component>>;
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:224:26
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn as_any(&self) -> &std::any::Any;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn as_any(&self) -> &dyn std::any::Any;
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:338:17
[INFO] [stdout]     |
[INFO] [stdout] 338 |     fn get_read(&World) -> Self::Read;
[INFO] [stdout]     |                 ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &World`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:168:47
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn put(&mut self, id: EntityID, comp: Box<Component>) {
[INFO] [stdout]     |                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn put(&mut self, id: EntityID, comp: Box<dyn Component>) {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:339:18
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn get_write(&mut World) -> Self::Write;
[INFO] [stdout]     |                  ^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut World`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:172:48
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get(&self, id: EntityID) -> Option<&Box<Component>> {
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get(&self, id: EntityID) -> Option<&Box<dyn Component>> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:176:60
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<Component>> {
[INFO] [stdout]     |                                                            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<dyn Component>> {
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/main.rs:77:21
[INFO] [stdout]     |
[INFO] [stdout] 77  |         type Read = ( $( $( &'a $components ),+ )+ );
[INFO] [stdout]     |                     ^^^^^^^^               ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |     -----------------------------
[INFO] [stdout]     |     |
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `read` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 77  -         type Read = ( $( $( &'a $components ),+ )+ );
[INFO] [stdout] 77  +         type Read = &'a $components;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/main.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |         type Write = ( $( $( &'a mut $components ),+ )+ );
[INFO] [stdout]     |                      ^^^^^^^^                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |     ------------------------------
[INFO] [stdout]     |     |
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |     in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -         type Write = ( $( $( &'a mut $components ),+ )+ );
[INFO] [stdout] 127 +         type Write = &'a mut $components;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:182:47
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn put(&mut self, id: EntityID, comp: Box<Component>) {
[INFO] [stdout]     |                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn put(&mut self, id: EntityID, comp: Box<dyn Component>) {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:186:48
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn get(&self, id: EntityID) -> Option<&Box<Component>> {
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn get(&self, id: EntityID) -> Option<&Box<dyn Component>> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:190:60
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<Component>> {
[INFO] [stdout]     |                                                            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<dyn Component>> {
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:261:26
[INFO] [stdout]     |
[INFO] [stdout] 261 |     fn as_any(&self) -> &std::any::Any {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 261 |     fn as_any(&self) -> &dyn std::any::Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:269:26
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn as_any(&self) -> &std::any::Any {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn as_any(&self) -> &dyn std::any::Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:234:37
[INFO] [stdout]     |
[INFO] [stdout] 234 |     components: HashMap<TypeId, Box<ComponentStorage>>,
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 234 |     components: HashMap<TypeId, Box<dyn ComponentStorage>>,
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:167:49
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl ComponentStorage for HashMap<EntityID, Box<Component>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl ComponentStorage for HashMap<EntityID, Box<dyn Component>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:181:35
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ComponentStorage for Vec<Box<Component>> {
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ComponentStorage for Vec<Box<dyn Component>> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:162:47
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn put(&mut self, id: EntityID, comp: Box<Component>);
[INFO] [stdout]     |                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn put(&mut self, id: EntityID, comp: Box<dyn Component>);
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:163:48
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn get(&self, id: EntityID) -> Option<&Box<Component>>;
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn get(&self, id: EntityID) -> Option<&Box<dyn Component>>;
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:164:60
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<Component>>;
[INFO] [stdout]     |                                                            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<dyn Component>>;
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:224:26
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn as_any(&self) -> &std::any::Any;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn as_any(&self) -> &dyn std::any::Any;
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:168:47
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn put(&mut self, id: EntityID, comp: Box<Component>) {
[INFO] [stdout]     |                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn put(&mut self, id: EntityID, comp: Box<dyn Component>) {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:172:48
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get(&self, id: EntityID) -> Option<&Box<Component>> {
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get(&self, id: EntityID) -> Option<&Box<dyn Component>> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:176:60
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<Component>> {
[INFO] [stdout]     |                                                            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<dyn Component>> {
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:182:47
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn put(&mut self, id: EntityID, comp: Box<Component>) {
[INFO] [stdout]     |                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn put(&mut self, id: EntityID, comp: Box<dyn Component>) {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:186:48
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn get(&self, id: EntityID) -> Option<&Box<Component>> {
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn get(&self, id: EntityID) -> Option<&Box<dyn Component>> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:190:60
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<Component>> {
[INFO] [stdout]     |                                                            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn get_mut(&mut self, id: EntityID) -> Option<&mut Box<dyn Component>> {
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:261:26
[INFO] [stdout]     |
[INFO] [stdout] 261 |     fn as_any(&self) -> &std::any::Any {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 261 |     fn as_any(&self) -> &dyn std::any::Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:269:26
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn as_any(&self) -> &std::any::Any {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn as_any(&self) -> &dyn std::any::Any {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:191:14
[INFO] [stdout]     |
[INFO] [stdout] 191 |         Some(&self[id as usize])
[INFO] [stdout]     |         ---- ^^^^^^^^^^^^^^^^^^ types differ in mutability
[INFO] [stdout]     |         |
[INFO] [stdout]     |         arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Box<(dyn Component + 'static)>`
[INFO] [stdout]                        found reference `&Box<(dyn Component + 'static)>`
[INFO] [stdout] help: the type constructed contains `&Box<(dyn Component + 'static)>` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         Some(&self[id as usize])
[INFO] [stdout]     |         ^^^^^------------------^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/core/src/option.rs:571:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:191:14
[INFO] [stdout]     |
[INFO] [stdout] 191 |         Some(&self[id as usize])
[INFO] [stdout]     |         ---- ^^^^^^^^^^^^^^^^^^ types differ in mutability
[INFO] [stdout]     |         |
[INFO] [stdout]     |         arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut Box<(dyn Component + 'static)>`
[INFO] [stdout]                        found reference `&Box<(dyn Component + 'static)>`
[INFO] [stdout] help: the type constructed contains `&Box<(dyn Component + 'static)>` due to the type of the argument passed
[INFO] [stdout]    --> src/main.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         Some(&self[id as usize])
[INFO] [stdout]     |         ^^^^^------------------^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/core/src/option.rs:571:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:295:25
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let component: &Component = &**component_storage.get(*entity).unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let component: &dyn Component = &**component_storage.get(*entity).unwrap();
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:295:25
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let component: &Component = &**component_storage.get(*entity).unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let component: &dyn Component = &**component_storage.get(*entity).unwrap();
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:83:51
[INFO] [stdout]     |
[INFO] [stdout] 83  |                             .map(|x| { let comp: &Component = &**world.components.get(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |     ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `read` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 83  |                             .map(|x| { let comp: &dyn Component = &**world.components.get(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:83:51
[INFO] [stdout]     |
[INFO] [stdout] 83  |                             .map(|x| { let comp: &Component = &**world.components.get(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |     ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `read` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 83  |                             .map(|x| { let comp: &dyn Component = &**world.components.get(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `&Vel` cannot be built from an iterator over elements of type `&Vel`
[INFO] [stdout]    --> src/main.rs:94:30
[INFO] [stdout]     |
[INFO] [stdout] 94  |                             .collect()
[INFO] [stdout]     |                              ^^^^^^^ value of type `&Vel` cannot be built from `std::iter::Iterator<Item=&Vel>`
[INFO] [stdout] ...
[INFO] [stdout] 357 |     read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |     ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromIterator<&Vel>` is not implemented for `&Vel`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]    --> src/main.rs:83:30
[INFO] [stdout]     |
[INFO] [stdout] 80  |               $( $( world.tags.get( &($enums::$tags as u32) ) // Get all entity ID's
[INFO] [stdout]     |                     ---------- this expression has type `HashMap<u32, Vec<u32>>`
[INFO] [stdout] 81  |                               .unwrap()
[INFO] [stdout] 82  |                               .iter()
[INFO] [stdout]     |                                ------ `Iterator::Item` is `&u32` here
[INFO] [stdout] 83  |                               .map(|x| { let comp: &Component = &**world.components.get(&TypeId::of::<$components>())
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 84  | |                                                                                  .unwrap()
[INFO] [stdout] 85  | |                                                                                  .get(*x) // Get the corresponding component
[INFO] [stdout] 86  | |                                                                                  .unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 92  | |                                        comp
[INFO] [stdout] 93  | |                                      })
[INFO] [stdout]     | |_______________________________________^ `Iterator::Item` changed to `&Vel` here
[INFO] [stdout] ...
[INFO] [stdout] 357 |       read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |       ----------------------------- in this macro invocation
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/core/src/iter/traits/iterator.rs:1891:5
[INFO] [stdout]     = note: this error originates in the macro `read` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:133:55
[INFO] [stdout]     |
[INFO] [stdout] 133 |                             .map(|x| { let comp: &mut Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                       ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |     ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |                             .map(|x| { let comp: &mut dyn Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `&Vel` cannot be built from an iterator over elements of type `&Vel`
[INFO] [stdout]    --> src/main.rs:94:30
[INFO] [stdout]     |
[INFO] [stdout] 94  |                             .collect()
[INFO] [stdout]     |                              ^^^^^^^ value of type `&Vel` cannot be built from `std::iter::Iterator<Item=&Vel>`
[INFO] [stdout] ...
[INFO] [stdout] 357 |     read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |     ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromIterator<&Vel>` is not implemented for `&Vel`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]    --> src/main.rs:83:30
[INFO] [stdout]     |
[INFO] [stdout] 80  |               $( $( world.tags.get( &($enums::$tags as u32) ) // Get all entity ID's
[INFO] [stdout]     |                     ---------- this expression has type `HashMap<u32, Vec<u32>>`
[INFO] [stdout] 81  |                               .unwrap()
[INFO] [stdout] 82  |                               .iter()
[INFO] [stdout]     |                                ------ `Iterator::Item` is `&u32` here
[INFO] [stdout] 83  |                               .map(|x| { let comp: &Component = &**world.components.get(&TypeId::of::<$components>())
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 84  | |                                                                                  .unwrap()
[INFO] [stdout] 85  | |                                                                                  .get(*x) // Get the corresponding component
[INFO] [stdout] 86  | |                                                                                  .unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 92  | |                                        comp
[INFO] [stdout] 93  | |                                      })
[INFO] [stdout]     | |_______________________________________^ `Iterator::Item` changed to `&Vel` here
[INFO] [stdout] ...
[INFO] [stdout] 357 |       read!( Tag::HasGravity: Vel ); 
[INFO] [stdout]     |       ----------------------------- in this macro invocation
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/core/src/iter/traits/iterator.rs:1891:5
[INFO] [stdout]     = note: this error originates in the macro `read` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:133:55
[INFO] [stdout]     |
[INFO] [stdout] 133 |                             .map(|x| { let comp: &mut Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                       ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |     ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |                             .map(|x| { let comp: &mut dyn Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:133:67
[INFO] [stdout]     |
[INFO] [stdout] 133 |                               .map(|x| { let comp: &mut Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |  __________________________________________________--------------___^
[INFO] [stdout]     | |                                                  |
[INFO] [stdout]     | |                                                  expected due to this
[INFO] [stdout] 134 | |                                                                                      .unwrap()
[INFO] [stdout] 135 | |                                                                                      .get_mut(*x) // Get the corresponding component
[INFO] [stdout] 136 | |                                                                                      .unwrap();
[INFO] [stdout]     | |______________________________________________________________________________________________^ types differ in mutability
[INFO] [stdout] ...
[INFO] [stdout] 358 |       write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |       ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut (dyn Component + 'static)`
[INFO] [stdout]                        found reference `&(dyn Component + 'static)`
[INFO] [stdout]     = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `&mut Pos` cannot be built from an iterator over elements of type `&mut Pos`
[INFO] [stdout]    --> src/main.rs:144:30
[INFO] [stdout]     |
[INFO] [stdout] 144 |                             .collect()
[INFO] [stdout]     |                              ^^^^^^^ value of type `&mut Pos` cannot be built from `std::iter::Iterator<Item=&mut Pos>`
[INFO] [stdout] ...
[INFO] [stdout] 358 |     write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |     ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromIterator<&mut Pos>` is not implemented for `&mut Pos`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]    --> src/main.rs:133:30
[INFO] [stdout]     |
[INFO] [stdout] 130 |               $( $( world.tags.get( &($enums::$tags as u32) ) // Get all entity ID's
[INFO] [stdout]     |                     ---------- this expression has type `HashMap<u32, Vec<u32>>`
[INFO] [stdout] 131 |                               .unwrap()
[INFO] [stdout] 132 |                               .iter()
[INFO] [stdout]     |                                ------ `Iterator::Item` is `&u32` here
[INFO] [stdout] 133 |                               .map(|x| { let comp: &mut Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 134 | |                                                                                      .unwrap()
[INFO] [stdout] 135 | |                                                                                      .get_mut(*x) // Get the corresponding component
[INFO] [stdout] 136 | |                                                                                      .unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 142 | |                                        comp
[INFO] [stdout] 143 | |                                      })
[INFO] [stdout]     | |_______________________________________^ `Iterator::Item` changed to `&mut Pos` here
[INFO] [stdout] ...
[INFO] [stdout] 358 |       write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |       ------------------------------ in this macro invocation
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/core/src/iter/traits/iterator.rs:1891:5
[INFO] [stdout]     = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:133:67
[INFO] [stdout]     |
[INFO] [stdout] 133 |                               .map(|x| { let comp: &mut Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |  __________________________________________________--------------___^
[INFO] [stdout]     | |                                                  |
[INFO] [stdout]     | |                                                  expected due to this
[INFO] [stdout] 134 | |                                                                                      .unwrap()
[INFO] [stdout] 135 | |                                                                                      .get_mut(*x) // Get the corresponding component
[INFO] [stdout] 136 | |                                                                                      .unwrap();
[INFO] [stdout]     | |______________________________________________________________________________________________^ types differ in mutability
[INFO] [stdout] ...
[INFO] [stdout] 358 |       write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |       ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut (dyn Component + 'static)`
[INFO] [stdout]                        found reference `&(dyn Component + 'static)`
[INFO] [stdout]     = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 23 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `&mut Pos` cannot be built from an iterator over elements of type `&mut Pos`
[INFO] [stdout]    --> src/main.rs:144:30
[INFO] [stdout]     |
[INFO] [stdout] 144 |                             .collect()
[INFO] [stdout]     |                              ^^^^^^^ value of type `&mut Pos` cannot be built from `std::iter::Iterator<Item=&mut Pos>`
[INFO] [stdout] ...
[INFO] [stdout] 358 |     write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |     ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromIterator<&mut Pos>` is not implemented for `&mut Pos`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]    --> src/main.rs:133:30
[INFO] [stdout]     |
[INFO] [stdout] 130 |               $( $( world.tags.get( &($enums::$tags as u32) ) // Get all entity ID's
[INFO] [stdout]     |                     ---------- this expression has type `HashMap<u32, Vec<u32>>`
[INFO] [stdout] 131 |                               .unwrap()
[INFO] [stdout] 132 |                               .iter()
[INFO] [stdout]     |                                ------ `Iterator::Item` is `&u32` here
[INFO] [stdout] 133 |                               .map(|x| { let comp: &mut Component = &**world.components.get_mut(&TypeId::of::<$components>())
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 134 | |                                                                                      .unwrap()
[INFO] [stdout] 135 | |                                                                                      .get_mut(*x) // Get the corresponding component
[INFO] [stdout] 136 | |                                                                                      .unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 142 | |                                        comp
[INFO] [stdout] 143 | |                                      })
[INFO] [stdout]     | |_______________________________________^ `Iterator::Item` changed to `&mut Pos` here
[INFO] [stdout] ...
[INFO] [stdout] 358 |       write!( Tag::HasGravity: Pos );
[INFO] [stdout]     |       ------------------------------ in this macro invocation
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/core/src/iter/traits/iterator.rs:1891:5
[INFO] [stdout]     = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 23 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ecstest` (bin "ecstest" test) due to 5 previous errors; 23 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `ecstest` (bin "ecstest") due to 5 previous errors; 23 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "154afefe44aec8b9f8303bdd4beb2d6e4fcf1d2fc23be700d05b2cfdb6ceb640", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "154afefe44aec8b9f8303bdd4beb2d6e4fcf1d2fc23be700d05b2cfdb6ceb640", kill_on_drop: false }`
[INFO] [stdout] 154afefe44aec8b9f8303bdd4beb2d6e4fcf1d2fc23be700d05b2cfdb6ceb640
